package com.zyh.scs.admin.api.dto.open;

import com.zyh.scs.admin.api.vo.open.GoodsDetailVO;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 支付码扣费 Dto
 *
 * @author hwh
 *
 * @date 2022-04-06
 */
@Data
public class QrCodeDeductionDTO implements Serializable {

    /**
     * 支付码内容
     */
    private String qrCode;

    /**
     * 商户订单号
     */
    @NotBlank(message = "商户订单号不能为空")
    private String outTradeNo;

    /**
     * 交易流水号
     */
    @NotBlank(message = "交易流水号不能为空")
    private String transactionSerial;

    /**
     * 消费金额
     */
    @NotNull(message = "消费金额不能为空")
    private BigDecimal amount;

    /**
     * 福利卡账户消费金额
     */
    private BigDecimal balance;

    /**
     * 现金余额消费金额
     */
    private BigDecimal cashBalance;

    /**
     * 订单时间戳，格式"yyyy-MM-dd HH:mm:ss"，此时间将作为双方对账时间，避免商户23:59:59发送的订单请求因响应不及时被轨集记录为00:00:01的订单，导致单日对账出错。
     */
    @NotBlank(message = "订单时间戳不能为空")
    private String timestamp;

    /**
     * 门店编码
     */
    private String storeId;

    /**
     * 门店名称
     */
    private String storeName;

    /**
     * 门店点位名称
     */
    private String shopName;

    /**
     * 消费备注
     */
    private String note;

    /**
     * 商品清单
     */
    private List<GoodsDetailVO> goodsDetail;

    /**
     * 消费类型（1-食堂就餐 2-食堂超市 3-食堂咖啡机）
     */
    private String consumeType;

}